Technical Field
This application relates to storage devices and, in particular, to systems, apparatuses, and methods for supporting variable sector sizes in solid state devices.
Description of the Related Art
A fundamental and readable unit of NAND Flash solid-state drive (SSD) devices is the “sector” or “page.” SSDs store all data on a number of pages arranged within multiple logical layers of the SSD. Early, and current, traditional solid-state drive (SSD) devices utilized fixed sector sizes of 512 bytes or 4096 bytes (4 KB). More recently, SSDs have supported “variable sector sizes.” A variable sector size refers to supporting sector sizes beyond standard 512 B and 4 KB sector sizes including random sector sizes. Advances in computer architecture, such as the proliferation of NVM Express (NVMe) devices, have resulted in many options of sector sizes including 520, 528, 4104, 4160, and 4224-byte page sizes. Variable sector sizes are designed to allow users and applications to insert additional management information together with actual data stored on SSDs in each sector.
The need to store additional data in sectors arises due to the fundamental characteristics of NAND Flash memory. Specifically, management data for a given page is ideally stored in a region of the page so that the management data can be read along with the page, eliminating multiple reads. Additionally, the logical block address (LBA) of each sector is stored as management data in the sector, usually in an out-of-band (OOB) region of the sector. LBA data is stored within a sector so that the LBA to physical block address (PBA) mapping can be re-built by reading content of individual sectors.
The preceding use of management data suffers from multiple deficiencies. First, storing the LBA in the OOB region of a sector result in unnecessary reads. Since NAND Flash memory degrades with accesses, NAND Flash memory storing the LBA in the OOB region hastens the failure of the underlying memory device. Second, due to the presence of errors in reading and writing to NAND Flash memory, copies of the LBA-to-PBA mapping must be replicated in one or more locations of NAND Flash memory, thus limiting the usable storage size of the memory.